package valueObjects.game.card.door;




/**
 * This card represents a character class card
 * Every class has two abilities
 *
 */
public class CharacterClassCard extends DoorCard {

	private static final long serialVersionUID = 1L;

	public static final String WARRIOR = "Krieger";
	
	public static final String THIEF = "Dieb";
	
	public static final String SORCERER = "Zauberer";
	
	public static final String PRIEST = "Priester";
	
	public static final String ALL = "all";

	public static final String DEFAULT = "Mensch";
	
	private String primaryAbiltiy;
	
	private String secondaryAbility; 
	
	private String characterType;

	public CharacterClassCard(String type) {
		this.characterType = type;
	}

	/**
	 * Returns the class of this character class card
	 * @return the characterClass
	 */
	public String getCharacterType() {
		return characterType;
	}

	/**
	 * Sets the class of this character class card
	 * @param characterType the characterClass to set
	 */
	public void setCharacterType(String characterType) {
		this.characterType = characterType;
	}

	/**
	 * Returns the primary ability of this class
	 * @return the primaryAbiltiy
	 */
	public String getPrimaryAbiltiy() {
		return primaryAbiltiy;
	}

	/**
	 * Sets the primary ability for this card
	 * @param primaryAbiltiy the primaryAbiltiy to set
	 */
	public void setPrimaryAbiltiy(String primaryAbiltiy) {
		this.primaryAbiltiy = primaryAbiltiy;
	}

	/**
	 * Returns the second ability of this class
	 * @return the secondaryAbility
	 */
	public String getSecondaryAbility() {
		return secondaryAbility;
	}

	/**
	 * Sets the secondary ability for this card
	 * @param secondaryAbility the secondaryAbility to set
	 */
	public void setSecondaryAbility(String secondaryAbility) {
		this.secondaryAbility = secondaryAbility;
	}
	
	/**
	 * Shows information about the card
	 */
	public String toString() {
		return (this.characterType + " / " + this.primaryAbiltiy + " / " + this.secondaryAbility);
	}

	@Override
	public String getType() {
		return "characterClass";
	}

	/**
	 * Checks if the given string is the same type
	 * @param def
	 * @return
	 */
	public boolean is(String def) {
		return this.characterType == def;
	}
	
}
